﻿// 3674. 中南a+b问题.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//

#include <iostream>
#include <map>


using namespace std;

/*
* https://www.acwing.com/problem/content/3677/
* 
* 
读入两个小于 100的正整数 A 和 B，计算 A+B
，注意: A+B的每一位由对应的英文单词给出。

输入格式
输入包含多组测试数据。
每组数据占一行，格式为 A + B =，其中 A 和 B
 的各位数字用英文单词给出且相邻两字符串有一个空格间隔。

当 A和 B 同时为 zero 时输入结束，相应的结果不要输出。

输出格式
每组数据输出一行，一个整数，表示 A+B 的值。

数据范围
1≤A,B≤99
输入样例：
one + two =
three four + five six =
zero + zero =
输出样例：
3
90
*/

map<string, int> mm{
    {"one",1},
    {"two",2},
    {"three",3},
    {"four",4},
    {"five",5},
    {"six",6},
    {"seven",7},
    {"eight",8},
    {"nine",9}
};

char str[1000];

int GetNum(string str) {
    int res = 0;
    int l = 0; int r = l;
    while (l < str.size() && r < str.size()) {
        while (l < str.size() && (str[l] == ' ' || str[l] == '+' || str[l] == '=')) l++;
        r = l;
        if (l >= str.size()) break;
        while (r < str.size() && str[r] != ' ' && str[r] != '+' && str[r] != '=') r++;
        string tmp = str.substr(l, r - l);
        res = res * 10 + mm[tmp];
        l = r;
    }

    return res;
}

void solve() {
    int splitIdx = -1;
    for (splitIdx = 0; splitIdx < 1000; splitIdx++) {
        if (str[splitIdx] == '+') break;
    }

    string AStr(str, str + splitIdx - 1);
    string BStr(str + splitIdx + 1);

    int A = GetNum(AStr);
    int B = GetNum(BStr);
    if (A == 0 && B == 0) return;
    cout << A + B << endl;
    return;
}

int main()
{
    while (cin.getline(str, 1000)) {
        solve();
    }


    return 0;
}

 